<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lang="zh" xml:lang="zh">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>支持材料: 可视建模</title>
<meta content="SupportingMaterial" name="uma.type">
<meta content="model_visually_uml" name="uma.name">
<meta content="可视建模" name="uma.presentationName">
<meta name="element_type" content="other">
<meta content="description" name="filetype">
<meta name="role" content="">
<link type="text/css" href="./../../../css/default.css" rel="StyleSheet">
<script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageResource.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageSubSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageToolbar.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/contentPage.js"></script><script language="JavaScript" type="text/javascript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=[{view: "view:_LVCagP5WEdmAzesbYywanQ", path: ["_LVCagP5WEdmAzesbYywanQ", "_zRigkAILEdq-_NKqZM1EhA", "_IY0NkAISEdqTna4sZVFRow", "_ydt62NnmEdmO6L4XMImrsA", "2.2182245081579854E-305"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_kC0pcN7GEdm8G6yT7-Wdqw", "_ydt62NnmEdmO6L4XMImrsA", "2.2182245081579854E-305"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_jD8dUAIbEdqEutyfYo0quQ", "__yoNMDIcEdqDs_9ORT1Rig", "2.2182245081579854E-305"]}];
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="2.2182245081579854E-305"></div>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap="true" class="pageTitle">可视建模</td><td width="100%">
<div id="contentPageToolbar" align="right"></div>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class="pageTitleSeparator"><img height="1" title="" alt="" src="./../../../images/shim.gif"></td>
</tr>
</table>
<div class="overview">
<table cellpadding="0" cellspacing="0" border="0" width="97%">
<tr>
<td width="50"><img title="" alt="" src="./../../../core.base_rup/guidances/supportingmaterials/resources/pract_dgm32.gif"></td><td>
<table cellpadding="0" cellspacing="0" border="0" class="overviewTable">
<tr>
<td valign="top">可视建模的实践是使用语义丰富的图形和文本设计注释来捕获软件设计。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">关系</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading">相关元素</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.base_rup/disciplines/rup_analysis_design_discipline_29760231.html" guid="_ydt62NnmEdmO6L4XMImrsA">分析和设计</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">主要描述</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a> 
<p align="center">
    <img height="229" alt="可视建模图像" src="./../../../core.base_rup/guidances/supportingmaterials/resources/visual.gif" width="447" />
</p>
<p class="picturetext">
    可视建模提高了抽象的程度
</p>
<h2>
    <a id="What is Visual Modeling" name="What is Visual Modeling">什么是可视建模</a>？
</h2>
<p>
    可视建模是指使用语义丰富的图形和文本设计表示法来捕获软件设计。表示法（例如 UML）允许提高抽象的程度，同时保持严格的语法和语义。 这样，它就改进了设计团队在设计成形和复审时的沟通情况，允许读者理解该设计，并且它为实施奠定了明确的基础。
</p>
<h2>
    <a id="Why Do We Model" name="Why Do We Model">我们为什么建模</a>？
</h2>
<p>
    模型是简化了的系统视图。它从特定的角度显示系统的基本元素，并隐藏非基本细节。模型可以下列方式提供帮助：
</p>
<ul>
    <li>
        <a href="#Aiding understanding of complex systems">协助理解复杂的系统</a>
    </li>
    <li>
        <a href="#Exploring and comparing design alternatives at a low cost">以较低成本探索和比较设计备用方案</a>
    </li>
    <li>
        <a href="#Forming a foundation for implementation">形成实施的基础</a>
    </li>
    <li>
        <a href="#Capturing requirements precisely">精确地捕获需求</a>
    </li>
    <li>
        <a href="#Communicating decisions unambiguously">明确地传达决策</a>
    </li>
</ul>
<h3>
    <a id="Aiding understanding of complex systems" name="Aiding understanding of complex systems">协助理解复杂的系统</a>
</h3>
<p>
    模型的重要性随着系统的复杂程度而增加。例如，造一个狗窝并不需要什么计划。但是，当一个狗窝发展为房屋，然后发展为摩天大厦时，对计划的需求就比较明显了。
</p>
<p>
    类似的，由一个人在几天内构建的小应用程序可能在整体上比较容易理解。但是，对于一个具有数万行源代码（SLOC）的电子商务系统或具有数十万 SLOC
    的空中交通控制系统，一个人就不那么容易理解了。构造模型使开发人员可以关注全局，理解组件之间如何交互，并确定致命的缺陷。&nbsp;
</p>
<p>
    模型的一些示例有：
</p>
<ul>
    <li>
        用于明确指定行为的用例
    </li>
    <li>
        用于捕获设计的类图和数据模型图
    </li>
    <li>
        用于对动态行为建模的状态过渡图
    </li>
</ul>
<p>
    建模很重要，因为建模有助于团队设想、构造和记录系统的结构和行为，而不会被复杂性迷失方向。
</p>
<h3>
    <a id="Exploring and comparing design alternatives at a low cost" name="Exploring and comparing design alternatives at a low cost">以较低成本探索和比较设计备用方案</a>
</h3>
<p>
    可以较低的成本创建和修改简单的模型，以探索设计备用方案。在投资到昂贵的代码开发之前，其他开发人员可能会捕获到并复审有创新的想法。如果可视建模与迭代开发结合起来，会有助于开发人员评估设计变更并将这些变更传达给整个开发团队。
</p>
<h3>
    <a id="Forming a foundation for implementation" name="Forming a foundation for implementation">形成实施的基础</a>
</h3>
<p>
    今天，许多项目都采用面向对象编程语言来获取可重用、允许更改而且稳定的系统。要实现这些优点，更重要的是在设计中使用对象技术。Rational Unified Process（RUP）生成一个面向对象设计模型，这是实施的基础。
</p>
<p>
    在适当工具的支持下，可以使用设计模型生成一组初始代码以供实施。这称为“正向设计”或“代码生成”。也可以增强设计模型，以包括足够的信息来构建系统。
</p>
<p>
    还可以应用逆向工程，根据现有的实施来生成设计模型。这可以用于评估现有的实施。&nbsp;&nbsp;
</p>
<p>
    “双向设计”结合了正向设计和反向设计的技术，确保设计和代码一致。与迭代式流程和合适的工具相结合，双向设计使得在每次迭代期内设计和代码可以同步化。
</p>
<h3>
    <a id="Capturing requirements precisely" name="Capturing requirements precisely">精确地捕获需求</a>
</h3>
<p>
    构建系统之前，捕获需求是至关重要的。使用严谨明确的模型指定需求，有助于确保所有项目干系人都能了解需求并就此达成一致意见。&nbsp;&nbsp;
</p>
<p>
    如果一个模型将系统的外部行为与实施分离开来，就可以帮助您专注于系统的预想用途，而不会陷入实施细节中。
</p>
<h3>
    <a id="Communicating decisions unambiguously" name="Communicating decisions unambiguously">明确地传达决策</a>
</h3>
<p>
    RUP 使用的统一建模语言（UML）是一种可应用于系统工程与业务工程的一致表示法。标准表示法有以下作用（请参阅 [<a class="elementLinkWithUserText" href="./../../../core.base_rup/customcategories/references_56F06DFD.html" guid="7.755968586980351E-308">BOO95</a>]）：
</p>
<ul>
    <li>
        “它用作一种语言，以传达不明显的或无法从代码本身得出的决策。”
    </li>
    <li>
        “它提供足够丰富的语义，用以捕获所有重要的战略和战术决策。”
    </li>
    <li>
        “它提供一种足够具体的格式，使人们可以理解和使工具可操作。”
    </li>
</ul>
<p>
    UML 代表了对象技术行业软件建模方面最佳实践的汇总。有关 UML 的更多信息，请访问我们的 Web 站点 <a href="http://www-306.ibm.com/software/rational/uml/" target="_blank">http://www-306.ibm.com/software/rational/uml/</a>。
</p><br />
<br /></td>
</tr>
</table>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="copyright">
<tr>
<td class="copyright"><p>
    &copy; &nbsp;Copyright IBM Corp.&nbsp;1987, 2006. &nbsp;All Rights Reserved.
</p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
				contentPage.onload();
			</script>
</html>
